/**
 * 
 */
package br.com.integrator.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * @author MarlonVinicius
**/

public interface DaoGenerico<T, ID extends Serializable> {

	/**
	 * T = Classe a ser passada na query 
	 * ID = Tipo do campo a ser transmitido	
	 */
	
	public Class<T> getObjectClass();
	
	public T salvar(T object);
	
	public T pesquisarPorId(ID id);
	
	public T atualizar(T object);
	
	public void excluir(T object);
	
	public List<T> pesquisarTodos();
	
	public List<T> listaPesquisa(String query);
	
	public List<T> listPesquisaParam(String query, Map<String, Object> params);
	
	public List<T> listPesquisaParam(String query, Map<String, Object> params, int maximo, int atual);
	
	public T pesquisaParam(String query, Map<String, Object> params);
	
	
	
}
